# 定义字符串可以使用单引号、双引号
str1 = "hello python"
str2 = 'hello "fauks"'
print(str2)

# 字符串索引
print(str1[1])

# 迭代
for char in str2:
    print(char, end=",")
print("")

# 统计方法
print(len(str1))
# "l"为str1的子字符串
print(str1.count("l"))
print(str1.index("ll"))

# 字符串方法
hello_str = "this is python"
empty_str = " \r\n\t"
num_str = "\u00b2"
cap_str = " ABC"

# 判断是否为空白字符
print(empty_str.isspace())

# 是否只包含数字,三个方法都不能判断小数
# 单纯判断数字，常用
print(num_str.isdecimal())
# 除了数字还可以判断unicode
print(num_str.isdigit())
# 还可以判断中文数字,一千零一
print(num_str.isnumeric())

# 查找与替换
print(hello_str.startswith("t"))
print(hello_str.endswith("thon"))
# index、find都可以查找子串在父串的位置
# 如果子串不存在于父串，index报错，find会返回-1
print(hello_str.find("is"))
print(hello_str.replace("is", "IS", 1))

# 文本对齐,用于要输出一大段文字要使用的对齐方式
poem = ["hellohellohello",
        "fauksfauks",
        "slxslxslxslxslx",
        "jay"]

for p in poem:
    # 字符串居中
    print(p.rjust(20))

# 去空格
print(cap_str.strip())

# 字符串拆分、拼接
sub_str = "i am fauks"

# 拆分字符串,可以指定分隔符，如果不指定则使用任何空白字符作为分隔符
sList = sub_str.split()
print(sList)

# 拼接,使用"+"连接
joinStr = "+".join(sList)
print(joinStr)

# 字符串切片 0~n为顺序索引 -1~-n为倒序索引
nums = "0123456789"
# 截取2~5
print(nums[2:5])
# 截取2~末尾
print(nums[2:])
# 从开始到5
print(nums[:6])
# 截取完整字符串
print(nums[:])
# 每隔一个字符截取，需要使用步长
print(nums[::2])
# 从1开始每隔一个字符截取
print(nums[1::2])
# 从开始到倒数第二个字符，-1为倒数第一个，截取字符串不包含末尾字符
print(nums[:-1])
# 截取字符串末尾两个字符
print(nums[-2:])
# 字符串逆序,步长-1表示从指定位置往左切
print(nums[-1::-1])

